(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i-1){urlObj[key]=val.replace(variable,value)}}}}function getFullConfig(ver,prevVersion){ver=ver||VERSION;var versionResult=computeVersions(ver,prevVersion);var config=configJson;replaceUrlVariables(config.prod.urls,VARIABLE_CURRENT_VERSION,versionResult.current);replaceUrlVariables(config.build.urls,VARIABLE_PRIOR_VERSION,versionResult.prior);return config}module.exports={getFullConfig:getFullConfig,computeVersions:computeVersions}},{"../_version.js":1}],3:[function(require,module,exports){module.exports={current:"prod"}},{}],4:[function(require,module,exports){module.exports={en:{memberId:"[DigiTrust Client Error] Missing member ID, add the member ID to the function call options",postMessageOrigin:"[DigiTrust Client Error] Origin of postMessage call was not the official DigiTrust domain",iframeError:"[DigiTrust Iframe Error] Client could not connect to the iframe",appManifestXHR:"[DigiTrust Publisher Error] Client could not retrieve Publisher App Manifest JSON file",appManifestInvalid:"[DigiTrust Publisher Error] Publisher App Manifest does not contain valid JSON",appNameInvalid:"[DigiTrust App Error] App name does not match available apps in manifest.json",iframeMissingMember:"[DigiTrust Iframe Error] Client did not send Member string",iframeMissingAppName:"[DigiTrust Iframe Error] Client did not send App Name string"}}},{}],5:[function(require,module,exports){module.exports={gdprLanguages:["bg","hr","tr","cs","da","et","fi","fr","fr-be","fr-fr","fr-lu","fr-mc","fr-ch","de","de-at","de-de","de-li","de-lu","de-ch","el","hu","gd-ie","ga","it","it-ch","lv","lt","lb","mt","nl","nl-be","pl","pt","rm","ro","ro-mo","sk","sl","es","es-es","cy","sv","sv-fi","sv-sv","en-gb","en-ie","mo","ru-mo","eu","ca","co","fo","fy","fur","gd","gl","is","la","no","nb","nn","oc","sc","sb","hsb","vo","wa","ar","ast","br","eo"]}},{}],6:[function(require,module,exports){module.exports={member:"",site:"",sample:1,redirects:false,adblocker:{detection:false,blockContent:false,userMessage:"Did you know advertising pays for this brilliant content? Please disable your ad blocker, then press the Reload button below ... and thank you for your visit!",popupFontColor:"#5F615D",popupBackgroundColor:"#FFFFFF",logoSrc:null,logoText:null,pictureSrc:null},consent:{requires:"none",userMessage:'This site uses cookies and is a member of DigiTrust, a non-profit consortium of companies working together to improve your Web experience. By clicking on this page you agree to the use of cookies. This notice only appears once. You can read more or opt out of DigiTrust here.',popupFontColor:"#ffffff",popupBackgroundColor:"#000000"}}},{}],7:[function(require,module,exports){module.exports={type:"RSA-OAEP",hash:{name:"SHA-1"},version:4,spki:"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAgrdFWb07eQFRtdmXcnVRpSZFoibNFMZDEZHn71j6oa5Ohw7miu/Cpl77h2Pp/0bLt3dHr6RcinqA9cck2nPjJEw2svSzJOHY1409Cxr7cyAhfmueLazL/C8DOyFSe3e4QGNsJtPTlNy6Etmnb4dvctpm/nQ2nDaPw5wnb0hWI6Ik7wtvjbH9SaCRlXcyEKpF1oXy55jDJeovSxQz9eL+bgObD2Lz43gidU4B/zPhbNI+KmMkV539okyFfmcBwrCQARkh9d3eI8kAH+PptTalApVAefPSGZdWkSvkNw7HEbcnLMWWWXKeF7z2lMBd7RbnCyBUmgtHLY6d8HX6JPWB6QIDAQAB",jwk:{kty:"RSA",kid:"fb8cd98a-d21b-4cd6-8b3c-182727effee4",n:"grdFWb07eQFRtdmXcnVRpSZFoibNFMZDEZHn71j6oa5Ohw7miu_Cpl77h2Pp_0bLt3dHr6RcinqA9cck2nPjJEw2svSzJOHY1409Cxr7cyAhfmueLazL_C8DOyFSe3e4QGNsJtPTlNy6Etmnb4dvctpm_nQ2nDaPw5wnb0hWI6Ik7wtvjbH9SaCRlXcyEKpF1oXy55jDJeovSxQz9eL-bgObD2Lz43gidU4B_zPhbNI-KmMkV539okyFfmcBwrCQARkh9d3eI8kAH-PptTalApVAefPSGZdWkSvkNw7HEbcnLMWWWXKeF7z2lMBd7RbnCyBUmgtHLY6d8HX6JPWB6Q",e:"AQAB",alg:"RSA-OAEP",ext:true,key_ops:["encrypt"]}}},{}],8:[function(require,module,exports){var DigiTrust=require("./modules/DigiTrust");if(window!==undefined&&window.DigiTrust==null){window.DigiTrust=DigiTrust}},{"./modules/DigiTrust":11}],9:[function(require,module,exports){"use strict";var buildEnv=require("../config/env.json").current;var genConfig=require("../config/GeneralConfig").getFullConfig();var activeConfig=genConfig[buildEnv];var helpers=require("./helpers");var myConfig;var noop=function(){};var loadDepth=0;var LOGID="DigiTrust_ConfigLoader";var log={};var logInitialized=false;var mockLog={log:noop,warn:noop,info:noop,error:noop};function initLog(){if(logInitialized){return}if(typeof helpers.createLogger==="function"){log=helpers.createLogger(LOGID)}else{log=mockLog}logInitialized=true}function loadConfig(settings){initLog();loadDepth=0;loadOver(settings,myConfig);return myConfig}function loadOver(newVals,targetObject){var otype=typeof newVals;var k,v,vtype;var next;if(loadDepth++>7){log.warn("DigiTrust load config over recurse page: "+document.location);return targetObject}if(otype!="object"||newVals==null){return targetObject}for(k in newVals){if(newVals.hasOwnProperty(k)){v=newVals[k];vtype=typeof v;if(vtype=="object"){if(targetObject[k]==null){targetObject[k]={}}next=targetObject[k];targetObject[k]=loadOver(v,next);loadDepth--}else{targetObject[k]=v}}}return targetObject}function reset(){myConfig=null;setBaseConfig()}function setBaseConfig(){var conf=Object.assign({},genConfig["prod"]);myConfig=conf;if(buildEnv!="prod"){loadConfig(activeConfig)}return myConfig}function getVal(key){return helpers.deepGet(myConfig,key)}setBaseConfig();module.exports={loadConfig:loadConfig,getValue:getVal,reset:reset,all:function(){return myConfig}}},{"../config/GeneralConfig":2,"../config/env.json":3,"./helpers":18}],10:[function(require,module,exports){"use strict";var Dcom=require("./DigiTrustCommunication");function Dbug(parent){this.parent=parent||window.DigiTrust;var me=this}var logTagStyle="display: inline-block; color: #fff; background: [BG_COLOR]; padding: 1px 4px; border-radius: 3px;font-size:1.1rem;";function getStyle(){var dt=this.parent||window.DigiTrust;var bgColor=dt.isClient?"#395BA8":"#ff9900";var tagStyle=logTagStyle.replace("[BG_COLOR]",bgColor);return tagStyle}Dbug.prototype.isDebug=function(){return this.parent.util.isDebugEnabled()};Dbug.prototype.setDebug=function(isSet){var util=this.parent.util;var isClient=this.parent.isClient;if(typeof isSet!=="boolean"){isSet=true}var result=util.setDebug(isSet);if(isClient){Dcom.setFrameDebug(true)}return result};Dbug.prototype.dumpLogs=function(header){var util=this.parent.util;var buffer=util.getGlobalLogger().getBuffer();forceWrite(util.getGlobalLogger().name);var hasHeader=header!=null;if(hasHeader){var style=getStyle.call(this);forceWrite("%c"+header,style);forceGroup(true,header)}forceWrite(buffer);if(hasHeader){forceGroup(false)}var isClient=this.parent.isClient;if(isClient){Dcom.dumpFrameLogs()}return buffer};Dbug.prototype.dumpConfig=function(){var conf=DigiTrust._config.initOptions;forceWrite(conf);return conf};function forceWrite(){var key="con"+"sole";var con=window[key];con.log.apply(con,arguments);return}function forceGroup(isGroup,text){var key="con"+"sole";var con=window[key];if(isGroup){con.group(text)}else{con.groupEnd()}}module.exports={createDebugControl:function(parent){var p=parent||window.DigiTrust;return new Dbug(p)}}},{"./DigiTrustCommunication":12}],11:[function(require,module,exports){"use strict";var config=require("./ConfigLoader");var configErrors=require("../config/errors.json");var configInitializeOptions=require("../config/initializeOptions.json");var helpers=require("./helpers");var DigiTrustConsent=require("./DigiTrustConsent");var DigiTrustCookie=require("./DigiTrustCookie");var DigiTrustCommunication=require("./DigiTrustCommunication");var DigiTrustCrypto=require("./DigiTrustCrypto");var debugCtrl=require("./DebugControl");var LOGID="Digitrust";var logObj=require("./logger");var log=logObj.createLogger(LOGID,{level:"ERROR",enabled:false});var VERSION=require("../_version.js");var DigiTrust={version:VERSION,isClient:false,_config:{loader:config,errors:configErrors,initOptions:configInitializeOptions,crypto:DigiTrustCrypto},cookie:DigiTrustCookie,util:helpers};var noop=function(){};DigiTrust.debugControl=debugCtrl.createDebugControl(DigiTrust);DigiTrust.initializeOptions={};var isMemberIdValid=function(memberId){if(memberId&&memberId.length>0){return true}else{throw configErrors.en.memberId}};DigiTrust._setDigiTrustOptions=function(options){var opts=Object.assign({},configInitializeOptions,options);window.DigiTrust.initializeOptions=opts;log.debug("options set",opts);return window.DigiTrust.initializeOptions};var configLoaded=false;DigiTrust._config.reload=function(){configLoaded=false;DigiTrust._config.loader.reset()};DigiTrust._config.getConfig=function(){var opts=window.DigiTrust.initializeOptions;var initEnv=opts&&opts.environment||null;var i;if(configLoaded){return DigiTrust._config.loader}var configX={};var keys=["urls","iframe","redirectInterval","redir"];var setVals=function(target,source,key){var k;try{if(source[key]==null){return}if(target[key]==null){target[key]={}}for(k in source[key]){if(source[key].hasOwnProperty(k)){target[key][k]=source[key][k]}}}catch(ex){}};if(initEnv!=null){for(i=0;ioptions.sample){return initializeCallback(identityResponseObject)}if(!isMemberIdValid(options.member)){log.debug("init fail! Invalid DigiTrust member or no member value passed");return initializeCallback(identityResponseObject)}DigiTrustConsent.hasConsent(null,function(consent){if(consent){DigiTrustCookie.getUser(options,function(err,identityObject){if(!err){identityResponseObject.success=true;identityResponseObject.identity=identityObject}return initializeCallback(identityResponseObject)})}else{log.debug("user consent missing - fail");return initializeCallback(identityResponseObject)}})}catch(e){log.error("Error in DigiTrust initializer",e);return initializeCallback({success:false})}};DigiTrust.initialize=function(options,initializeCallback){log=helpers.createLogger(LOGID);helpers.setGlobalLogger(log);var document=window.document;var ready=document.readyState;DigiTrust.isClient=true;if(!ready||ready=="loading"){document.addEventListener("DOMContentLoaded",function(event){DigiTrust.initialize(options,initializeCallback)})}else{initInternal(options,initializeCallback)}};DigiTrust.getUser=function(options,callback){options=DigiTrust._setDigiTrustOptions(options);var async=typeof callback==="function"?true:false;var identityResponseObject={success:false};try{if(!isMemberIdValid(options.member)){return async===false?identityResponseObject:callback(identityResponseObject)}if(async===false){var identityJSON=DigiTrustCookie.getUser();if(!helpers.isEmpty(identityJSON)){identityResponseObject.success=true;identityResponseObject.identity=identityJSON}return identityResponseObject}else{DigiTrustConsent.hasConsent(null,function(consent){if(consent){options.ignoreLocalCookies=true;DigiTrustCookie.getUser(options,function(err,identityObject){if(err){return callback(identityResponseObject)}else{identityResponseObject.success=true;identityResponseObject.identity=identityObject;return callback(identityResponseObject)}})}else{return callback(identityResponseObject)}})}}catch(e){return async===false?identityResponseObject:callback(identityResponseObject)}};DigiTrust.sendReset=function(options,callback){DigiTrustCommunication.sendReset()};DigiTrust.setDebug=function(isSet){var me=DigiTrust;me.debugControl.setDebug(isSet)};module.exports=DigiTrust},{"../_version.js":1,"../config/errors.json":4,"../config/initializeOptions.json":6,"./ConfigLoader":9,"./DebugControl":10,"./DigiTrustCommunication":12,"./DigiTrustConsent":13,"./DigiTrustCookie":14,"./DigiTrustCrypto":15,"./helpers":18,"./logger":19}],12:[function(require,module,exports){"use strict";var configErrors=require("../config/errors.json");var LOGID="DigiTrustCommunication";var logObj=require("./logger");var log=logObj.createLogger(LOGID,{level:"ERROR"});var logInitialized=false;var pubsub=require("./MinPubSub").createPubSub({host:location.host});var DC={};var noop=function(){};var Dt="DigiTrust",kID=Dt+".identity",kIframe=Dt+".iframe";var MKEY={ready:kIframe+".ready",ifrErr:kIframe+".error",idSync:kID+".response.sync",idResp:kID+".response",idReset:kID+".reset",idGet:kID+".request",frameDebug:kIframe+".setDebug",frameDumpLogs:kIframe+".dumpLogs",debugMsg:kIframe+".debugMsg"};var getConfig=function(){return window.DigiTrust._config.getConfig()};var getLogger=function(){return window.DigiTrust.util.getGlobalLogger()};function initOptions(){initLog()}function isFunc(fn){return typeof fn==="function"}function initLog(){if(logInitialized){return}var opts=window.DigiTrust.initializeOptions;if(opts.logging!=null){if(opts.logging.enable==false){log=logObj.createLogger(LOGID,{level:"ERROR"});log.enabled=false}else{if(opts.logging.level==null){opts.logging.level="INFO"}log=logObj.createLogger(LOGID,opts.logging)}}logInitialized=true}DC.iframe=null;DC.iframeStatus=0;function _messageHandler(evt){var log=getLogger();var iframeOrigin=getConfig().getValue("iframe.postMessageOrigin");var msgKey=evt.data.type;log.debug("pubsub event received: "+evt.msgKey,evt);if(evt.origin!==iframeOrigin){log.info("pubsub event origin does not match iframeOrigin from config: "+evt.origin+" : "+iframeOrigin);switch(msgKey){case"Digitrust.shareIdToIframe.request":if(DigiTrust){DigiTrust.getUser({member:window.DigiTrust.initializeOptions.member},function(resp){resp.type="Digitrust.shareIdToIframe.response";evt.source.postMessage(resp,evt.origin)})}else{log.warn("DigiTrust not found")}break;default:log.warn("message origin error. allowed: "+iframeOrigin+" \nwas from: "+evt.origin)}}else{switch(msgKey){case MKEY.ready:pubsub.publish(msgKey,[true]);break;default:pubsub.publish(msgKey,[evt.data.value]);break}}}DC.startConnection=function(loadSuccess){initOptions();var iframeConf=getConfig().getValue("iframe");var iframeLoadErrorTimeout=setTimeout(function(){var log=getLogger();log.warn("pubsub MESSAGE TIMEOUT ERROR");loadSuccess(false);DC.iframeStatus=0},iframeConf.timeoutDuration);pubsub.subscribe(MKEY.ready,function(iframeReady){clearTimeout(iframeLoadErrorTimeout);iframeLoadErrorTimeout=0;DC.iframeStatus=2;loadSuccess(true)});window.addEventListener("message",_messageHandler,false);DC.iframe=document.createElement("iframe");DC.iframe.style.display="none";DC.iframe.src=getConfig().getValue("urls.digitrustIframe");DC.iframe.name="__dtLocator";DC.iframeStatus=1;document.body.appendChild(DC.iframe);log.debug("communication frame added")};DC.sendRequest=function(sendRequestFunction,options){if(DC.iframeStatus===2){sendRequestFunction(options)}else if(DC.iframeStatus===1){pubsub.subscribe(MKEY.ready,function(iframeReady){sendRequestFunction(options)})}else if(DC.iframeStatus===0){DC.startConnection(function(loadSuccess){if(loadSuccess){sendRequestFunction(options)}else{throw new Error(configErrors.en.iframeError)}})}};DC.getIdentity=function(options){var log=getLogger();log.debug("pubsub request identity");options=options?options:{};var _sendIdentityRequest=function(options){var identityRequest={version:1,type:MKEY.idGet,syncOnly:options.syncOnly?options.syncOnly:false,redirects:options.redirects?options.redirects:false,value:{}};DC.iframe.contentWindow.postMessage(identityRequest,DC.iframe.src)};DC.sendRequest(_sendIdentityRequest,options)};DC.sendReset=function(options){var DigiTrustCookie=require("./DigiTrustCookie");DigiTrustCookie.setResetCookie();var _request=function(options){var requestPayload={version:1,type:MKEY.idReset};DC.iframe.contentWindow.postMessage(requestPayload,DC.iframe.src)};DC.sendRequest(_request,options)};DC.setFrameDebug=function(options){var log=getLogger();var isClient=window.DigiTrust.isClient;if(!isClient){log.warn("invalid call to DigiTrustCommunication.setFrameDebug. Only valid from client");return}var type=typeof options;if(type=="boolean"){options={debug:options}}else{options=options||{debug:true}}var cb=options.callback||noop;var reqFunc=function(opts){var reqData={value:options.debug||true,type:MKEY.frameDebug};DC.iframe.contentWindow.postMessage(reqData,DC.iframe.src)};DC.sendRequest(reqFunc,options)};DC.dumpFrameLogs=function(options){var log=getLogger();var isClient=window.DigiTrust.isClient;if(!isClient){log.warn("invalid call to DigiTrustCommunication.dumpFrameLogs. Only valid from client");return}options=options||{};var cb=options.callback||noop;var reqFunc=function(opts){var reqData={value:{},type:MKEY.frameDumpLogs};DC.iframe.contentWindow.postMessage(reqData,DC.iframe.src)};DC.sendRequest(reqFunc,options)};function listen(message,handler){if(!isFunc(handler)){return}pubsub.subscribe(message,handler)}module.exports={getIdentity:DC.getIdentity,startConnection:DC.startConnection,sendReset:DC.sendReset,setFrameDebug:DC.setFrameDebug,dumpFrameLogs:DC.dumpFrameLogs,MsgKey:MKEY,listen:listen}},{"../config/errors.json":4,"./DigiTrustCookie":14,"./MinPubSub":16,"./logger":19}],13:[function(require,module,exports){"use strict";var env=require("../config/env.json").current;var gdprInfo=require("../config/gdpr-lang.json");var DigiTrustConsent={};var getConfig=function(){return DigiTrust._config.getConfig()};var getLogger=function(){return window.DigiTrust.util.getGlobalLogger()};DigiTrustConsent.browserLanguageIsEU=function(languages){for(var i=0;i=0){return true}}return false};DigiTrustConsent.cmpConsent=function(languages){return false};DigiTrustConsent.gdprApplies=function(options){var browserLanguageCheckResult=DigiTrustConsent.browserLanguageIsEU(navigator.languages||[navigator.browserLanguage]);return browserLanguageCheckResult};DigiTrustConsent.hasConsent=function(options,callback){var log=getLogger();var applies=DigiTrustConsent.gdprApplies();var vendorId=getConfig().getValue("gvlVendorId");if(env==="local"||env==="localdev"){applies=false}if(typeof window.__cmp!=="undefined"){window.__cmp("ping",null,function(pingReturn){if(applies||pingReturn.gdprAppliesGlobally){log.debug("GDPR consent rules apply from language or global GDPR settings.");window.__cmp("getVendorConsents",[vendorId],function(result){var myconsent=result.vendorConsents[vendorId];log.debug("GDPR user consent value: "+myconsent);callback(myconsent)})}else{callback(true)}})}else if(applies){log.debug("GDPR consent rules apply.");callback(false)}else{callback(true)}};module.exports={hasConsent:DigiTrustConsent.hasConsent}},{"../config/env.json":3,"../config/gdpr-lang.json":5}],14:[function(require,module,exports){"use strict";var config=require("./ConfigLoader");var Dcom=require("./DigiTrustCommunication");var helpers=require("./helpers");function getConfig(){if(window&&window.DigiTrust&&window.DigiTrust._config){return window.DigiTrust._config.getConfig()}return config}var getLogger=function(){return window.DigiTrust.util.getGlobalLogger()};var _maxAgeToDate=function(milliseconds){var date=new Date;date.setTime(date.getTime()+milliseconds);return date.toUTCString()};var _setCookie=function(cookieKV,expiresKV,domainKV,pathKV){var str=cookieKV+expiresKV+domainKV+pathKV;if(str.substr(str.length-1)!=";"){str+=";"}str+="SameSite=None; Secure;";document.cookie=str};var _setIdentityCookie=function(cookieV){var cookieConfig=window.DigiTrust.isClient?getConfig().getValue("cookie.publisher"):getConfig().getValue("cookie.digitrust");var cookieKV=cookieConfig.userObjectKey+"="+cookieV+";";var expiresKV="expires="+_maxAgeToDate(cookieConfig.maxAgeMiliseconds)+";";var domainKV=cookieConfig.domainKeyValue;var pathKV=cookieConfig.pathKeyValue;_setCookie(cookieKV,expiresKV,domainKV,pathKV)};var _verifyUserCookieStructure=function(userJSON){if(!userJSON){return false}var hasUserId=userJSON.hasOwnProperty("id");var hasPrivacy=userJSON.hasOwnProperty("privacy");if(!hasUserId||!hasPrivacy||!userJSON.privacy.optout&&userJSON.id.length<1){return false}if(hasPrivacy){var hasOptout=userJSON.privacy.hasOwnProperty("optout");if(!hasOptout){return false}}else{return false}return true};var DigiTrustCookie={};DigiTrustCookie.getIdentityCookieJSON=function(cookieKey){var log=getLogger();var cookieKey=cookieKey||getConfig().getValue("cookie.digitrust.userObjectKey");var localUserCookie=DigiTrustCookie.getCookieByName(cookieKey);if(localUserCookie){log.debug("local user identity cookie found on domain "+location.host);var localUserCookieJSON={};try{localUserCookieJSON=DigiTrustCookie.unobfuscateCookieValue(localUserCookie)}catch(e){log.warn("error parsing user cookie - generating new identity");localUserCookieJSON={id:helpers.generateUserId(),version:getConfig().getValue("cookie.version"),producer:getConfig().getValue("cookie.producer"),privacy:{optout:false}};_setIdentityCookie(DigiTrustCookie.obfuscateCookieValue(localUserCookieJSON))}if(_verifyUserCookieStructure(localUserCookieJSON)){return localUserCookieJSON}else{log.info("failure in verifying cookie structure "+JSON.stringify(localUserCookieJSON));return{}}}else{log.debug("no local user identity");return{}}};DigiTrustCookie.setResetCookie=function(){var cookieConf=getConfig().getValue("cookie");var cookieKV=cookieConf.digitrust.resetKey+"=true;";var expiresKV="expires="+_maxAgeToDate(cookieConf.digitrust.maxAgeMiliseconds)+";";var domainKV=cookieConf.digitrust.domainKeyValue;var pathKV=cookieConf.digitrust.pathKeyValue;_setCookie(cookieKV,expiresKV,domainKV,pathKV)};DigiTrustCookie.expireCookie=function(cookieKey){var cookieConf=getConfig().getValue("cookie");var cookieKV=cookieKey+"=; ",expiresKV="expires=expires=Thu, 01 Jan 1970 00:00:01 GMT;",domainKV="",pathKV=cookieConf.digitrust.pathKeyValue;try{if(location.host.indexOf(cookieConf.digitrust.domainKeyValue)>-1){domainKV=cookieConf.digitrust.domainKeyValue}}catch(ex){}_setCookie(cookieKV,expiresKV,domainKV,pathKV)};DigiTrustCookie.setDigitrustCookie=function(cookieV){var log=getLogger();var cookieConf=getConfig().getValue("cookie");var cookieKV=cookieConf.digitrust.userObjectKey+"="+cookieV+";";var expiresKV="expires="+_maxAgeToDate(cookieConf.digitrust.maxAgeMiliseconds)+";";var domainKV=cookieConf.digitrust.domainKeyValue;var pathKV=cookieConf.digitrust.pathKeyValue;log.debug("setting identity cookie");_setCookie(cookieKV,expiresKV,domainKV,pathKV)};DigiTrustCookie.getUser=function(options,callback){var log=getLogger();var cookieConf=getConfig().getValue("cookie");options=options||{};var useCallback=typeof callback==="function"?true:false;var localUserCookieJSON={};var _createSyncOnlySubscription=function(){Dcom.listen(Dcom.MsgKey.idSync,function(userJSON){if(DigiTrustCookie.verifyPublisherDomainCookie(userJSON)){var cookieStringEncoded=DigiTrustCookie.obfuscateCookieValue(userJSON);_setIdentityCookie(cookieStringEncoded)}})};if(useCallback===false){localUserCookieJSON=DigiTrustCookie.getIdentityCookieJSON(cookieConf.publisher.userObjectKey);_createSyncOnlySubscription();Dcom.getIdentity({syncOnly:true});return!helpers.isEmpty(localUserCookieJSON)?localUserCookieJSON:{}}else{Dcom.listen(Dcom.MsgKey.idResp,function(userJSON){if(DigiTrustCookie.verifyPublisherDomainCookie(userJSON)){var cookieStringEncoded=DigiTrustCookie.obfuscateCookieValue(userJSON);_setIdentityCookie(cookieStringEncoded);return callback(false,userJSON)}else{if(helpers.isEmpty(userJSON)&&!userJSON.hasOwnProperty("error")){if(options.redirects){helpers.createConsentClickListener()}}return callback(true)}});if(options.ignoreLocalCookies===true){Dcom.getIdentity()}else{localUserCookieJSON=DigiTrustCookie.getIdentityCookieJSON(cookieConf.publisher.userObjectKey);if(DigiTrustCookie.verifyPublisherDomainCookie(localUserCookieJSON)){_createSyncOnlySubscription();Dcom.getIdentity({syncOnly:true});return callback(false,localUserCookieJSON)}else{Dcom.getIdentity({syncOnly:false,redirects:options.redirects})}}}};DigiTrustCookie.obfuscateCookieValue=function(value){return encodeURIComponent(btoa(JSON.stringify(value)))};DigiTrustCookie.unobfuscateCookieValue=function(value){return JSON.parse(atob(decodeURIComponent(value)))};DigiTrustCookie.getCookieByName=function(name){var value="; "+document.cookie;var parts=value.split("; "+name+"=");if(parts.length>=2){return parts.pop().split(";").shift()}};DigiTrustCookie.createUserCookiesOnDigitrustDomain=function(){var cookieConf=getConfig().getValue("cookie");var userId=helpers.generateUserId();var userJSON={id:userId,version:cookieConf.version,producer:cookieConf.producer,privacy:{optout:false}};var cookieStringEncoded=DigiTrustCookie.obfuscateCookieValue(userJSON);DigiTrustCookie.setDigitrustCookie(cookieStringEncoded);return userJSON};DigiTrustCookie.verifyPublisherDomainCookie=function(userJSON){if(helpers.isEmpty(userJSON)||!_verifyUserCookieStructure(userJSON)){return false}if(!userJSON.hasOwnProperty("keyv")){return false}return true};module.exports=DigiTrustCookie},{"./ConfigLoader":9,"./DigiTrustCommunication":12,"./helpers":18}],15:[function(require,module,exports){"use strict";var config=require("./ConfigLoader");var helpers=require("./helpers");var ServerCrypto=require("./ServerCrypto");var DTPublicKeyObject=require("../config/key.json");var LOGID="DigiTrustCrypto";var log={};var logInitialized=false;var crypto_browser=helpers.getBrowserCrypto();function initLog(){if(logInitialized){return}log=helpers.createLogger(LOGID);logInitialized=true}function isMsCrypto(cryptoObj){var msg;if(!cryptoObj||!cryptoObj.subtle){cryptoObj=window.crypto}if(!cryptoObj||!cryptoObj.subtle){msg="Invalid browser crypt object";log.debug(msg);return false}if(!window.msCrypto){return false}try{var genOp=cryptoObj.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:2048,publicExponent:new Uint8Array([1,0,1])},false,["encrypt","decrypt"]);if(typeof genOp.oncomplete!=="undefined"){return true}return false}catch(ex){return false}}var DigiTrustCrypto={};DigiTrustCrypto.getKeyVersion=function(){return DTPublicKeyObject.version};DigiTrustCrypto.encrypt=function(valueToEncrypt,callback){var keyType;var publicKey;initLog();if(crypto_browser==null){crypto_browser=helpers.getBrowserCrypto()}if(helpers.isSafari()){keyType="jwk";publicKey=DTPublicKeyObject.jwk}else{keyType="spki";publicKey=helpers.base64StringToArrayBuffer(DTPublicKeyObject.spki)}if(window.crypto&&!window.crypto.subtle&&helpers.isChrome()&&Math.random()=200&&this.status<300){resolve(xhr.response)}else{reject({status:this.status,statusText:xhr.statusText})}};xhr.onerror=function(){reject({status:this.status,statusText:xhr.statusText})};xhr.send()})};var xhrRequest=function(type,url,data,async){async=async?async?true:false:true;var methods={success:function(){},error:function(){}};var XHR=window.XMLHttpRequest||ActiveXObject;var request=new XHR("MSXML2.XMLHTTP.3.0");request.open(type,url,async);request.setRequestHeader("Content-type","application/x-www-form-urlencoded");request.onreadystatechange=function(){if(request.readyState===4){if(request.status>=200&&request.status<300){methods.success.apply(methods,parseXHR(request))}else{methods.error.apply(methods,parseXHR(request))}}};request.send(data);var callbacks={success:function(callback){methods.success=callback;return callbacks},error:function(callback){methods.error=callback;return callbacks}};return callbacks};var xhr={};xhr.get=function(url,data,async){return xhrRequest("GET",url,data,async)};xhr.put=function(url,data,async){return xhrRequest("PUT",url,data,async)};xhr.post=function(url,data,async){return xhrRequest("POST",url,data,async)};xhr.delete=function(url,data,async){return xhrRequest("DELETE",url,data,async)};xhr.promise=function(method,url,data){return xhrPromise(method,url,data)};helpers.xhr=xhr;var _getElementHref=function(current){if(current){if(current.nodeName.toLowerCase()==="a"){return current.href}else if(current.nodeName.toLowerCase()==="body"){return false}else{return _getElementHref(current.parentNode)}}else{return false}};helpers.getConfig=getConfig;helpers.createLogger=createLogger;helpers.getAbsolutePath=function(href){var link=document.createElement("a");link.href=href;return link.cloneNode(false).href};var inIframe=function(){try{return window.self!==window.top}catch(e){return true}};var flagStore={_settings:{key:null,expire:{val:7,per:"d"},expirePeriods:{d:24,h:1,m:1/60,s:1/3600},checkLoad:function(){var s=flagStore["_settings"];if(s.key!=null){return true}var opt=getConfig(),rd=opt.redirectInterval||{};s.key=rd.key||"DigiTrust.v1.redir";if(rd.exp){s.expire.val=rd.exp}if(rd.experiod){s.expire.per=rd.experiod}}},getStore:function(){flagStore._settings.checkLoad();return window.localStorage},ignoreRedirect:function(){var store=flagStore.getStore();var s=flagStore._settings;var tmp=store.getItem(s.key);if(tmp==null){return false}try{var obj=JSON.parse(tmp);var ts=new Date(obj.exp);var expFactor=s.expirePeriods[s.expire.per]||24;var expVal=s.expire.val*expFactor;var isExpired=ts.setHours(expVal)<=(new Date).getTime();if(isExpired){flagStore.clearRedirectFlag();return false}return true}catch(ex){flagStore.clearRedirectFlag();return false}},clearRedirectFlag:function(){var store=flagStore.getStore();var key=flagStore._settings.key;store.removeItem(key)},clearAll:function(){flagStore.clearRedirectFlag()},setRedirectFlag:function(){var store=flagStore.getStore();var key=flagStore._settings.key;var obj={val:true,exp:(new Date).getTime()};store.setItem(key,JSON.stringify(obj))}};helpers.resetFlags=function(){flagStore.clearAll()};helpers.createConsentClickListener=function(){if(inIframe()){return}if(flagStore.ignoreRedirect()){return}var handlerRef;var consentClickHandler=function(e){e=e||window.event;var t=e.target||e.srcElement;var consentLinkId="digitrust-optout";if(t.id===consentLinkId){return true}var possibleHref=_getElementHref(t)||"";var posA=possibleHref.indexOf("http://"),posB=possibleHref.indexOf("https://"),isLink=posA==0||posB==0;if(isLink){nixEvt(window,"click",handlerRef);flagStore.setRedirectFlag();window.location=config.getValue("urls.digitrustRedirect")+"?redirect="+encodeURIComponent(possibleHref);return false}};handlerRef=addEvt(window,"click",consentClickHandler)};helpers.generateUserId=function(){var buffer=new Uint8Array(8);getBrowserCrypto().getRandomValues(buffer);return helpers.arrayBufferToBase64String(buffer)};helpers.isEmpty=function(obj){if(obj===null||typeof obj==="undefined"){return true}if(obj.length>0){return false}if(obj.length===0){return true}for(var key in obj){if(hasOwnProperty.call(obj,key)){return false}}return true};helpers.deepGet=function(obj,key){var type=typeof obj;if(type!="object"||helpers.isEmpty(obj)||key==null){return null}var i,val=obj,k;var parts=key.split(".");var max=parts.length;for(i=0;i-1?true:false};helpers.isSafari=function(ua){var ua=ua||navigator.userAgent;ua=ua.toLowerCase();if(ua.indexOf("safari")!==-1){if(ua.indexOf("chrome")>-1){return false}else{return true}}return false};helpers.isChrome=function(ua){var ua=ua||navigator.userAgent;ua=ua.toLowerCase();if(ua.indexOf("chrome")!==-1){return true}return false};helpers.isValidJSON=function(str){try{JSON.parse(str)}catch(e){return false}return true};helpers.ab2str=function(buf){return String.fromCharCode.apply(null,new Uint8Array(buf))};helpers.str2ab=function(str){var buf=new ArrayBuffer(str.length);var bufView=new Uint8Array(buf);for(var i=0,strLen=str.length;i=myLevel}this.group=function(){var args=toArray(arguments);var cw=consoleWrapper;cw["group"].apply(null,args)};this.groupEnd=function(){var args=toArray(arguments);var cw=consoleWrapper;cw["groupEnd"].apply(null,args)};this.log=function(){var args=toArray(arguments);var msg,lvlArg;var logIt=true;var levelDef=logLevels.LOG;var doTrace=false;var i;if(args.length>=2){if(typeof args[args.length-1]==="string"){lvlArg=args.pop();logIt=doLog(lvlArg);levelDef=logLevels[lvlArg]}else if(typeof args[args.length-1]==="number"){lvlArg=args.pop();logIt=lvlArg>=getLevelVal(me.opts.level);levelDef=logLevelsByNum[lvlArg]}}if(!levelDef){levelDef=logLevels.LOG}if(args.length==0){msg=this.name+": [no message]"}else if(typeof args[0]==="string"){msg=this.name+": "+args.shift()}else{msg=this.name}args.unshift(msg);doTrace=levelDef.val==logObj.WARN||levelDef.val==logObj.ERROR;if(doTrace||levelDef.val==logObj.DEBUG){args.push({page:document.location.href})}if(buffer.length>maxBuffer){buffer.shift()}buffer.push(args);if(this.enabled!=true){return}if(!logIt){return}var result;var cw=consoleWrapper;if(cw[levelDef.log]){result=cw[levelDef.log].apply(null,args)}else{result=cw.log.apply(null,args)}if(doTrace&&cw.trace){cw.trace()}return result}}Logger.prototype.setLogLevel=function(level){var lvlType=typeof level;var lvlObj;if(lvlType==="string"){this.opts.level=level}else if(lvlType==="number"){lvlObj=logLevelsByNum[level];if(lvlObj){try{this.opts.level=lvlObj.log.toUpperCase()}catch(ex){}}}};Logger.prototype.getLevels=function(){return logLevels};Logger.prototype.debug=function(){var args=toArray(arguments);args.push(logObj.DEBUG);return this.log.apply(this,args)};Logger.prototype.info=function(){var args=toArray(arguments);args.push(logObj.INFO);return this.log.apply(this,args)};Logger.prototype.warn=function(){var args=toArray(arguments);args.push(logObj.WARN);return this.log.apply(this,args)};Logger.prototype.error=function(){var args=toArray(arguments);args.push(logObj.ERROR);return this.log.apply(this,args)};var logObj={createLogger:function(){return new Logger(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5])},DEBUG:0,INFO:1,WARN:2,ERROR:3};module.exports=logObj},{}]},{},[8]);